Skip to content

HTTP 和 HTTPS 是 Web 通信中最基础也最重要的两个协议。它们的核心区别在于 安全性,而这个“安全”主要体现在数据传输的加密、身份认证和完整性保护上。

下面从多个维度详细对比:


🔒 1. 核心区别:是否加密

特性HTTPHTTPS
全称HyperText Transfer ProtocolHyperText Transfer Protocol Secure
安全性明文传输(不安全)加密传输(安全)
默认端口80443
URL 前缀http://https://

关键结论:HTTPS = HTTP + SSL/TLS 加密层


🔐 2. 安全机制详解(HTTPS 如何做到安全?)

HTTPS 并不是新协议,而是在 HTTP 和 TCP 之间加入了一层 SSL/TLS(安全套接层/传输层安全) 协议。

(1)加密传输(Confidentiality)

  • 所有数据(包括 URL、请求头、请求体、Cookie 等)在传输前都会被对称加密
  • 即使被中间人截获,也无法直接读取内容。

(2)身份认证(Authentication)

  • 服务器必须提供由可信 CA(证书颁发机构) 签发的 数字证书
  • 浏览器会验证证书:
    • 是否由可信 CA 签发?
    • 域名是否匹配?
    • 是否在有效期内?
  • 防止你访问的是“假冒网站”(如钓鱼网站)。

(3)数据完整性(Integrity)

  • 使用 MAC(消息认证码)HMAC 技术。
  • 确保数据在传输过程中未被篡改(比如被运营商插入广告)。

🔄 3. 握手过程(为什么 HTTPS 更“慢”?)

建立 HTTPS 连接比 HTTP 多了 TLS 握手 步骤(通常 1-2 个 RTT):

  1. Client Hello:客户端发起连接,发送支持的加密套件等。
  2. Server Hello + 证书:服务器选择加密算法,并返回自己的公钥证书。
  3. 客户端验证证书:检查合法性。
  4. 生成会话密钥:客户端用服务器公钥加密一个随机生成的对称密钥,发送给服务器。
  5. 双方切换到对称加密通信:后续所有数据都用这个对称密钥加解密。

⚠️ 注意:虽然首次连接有开销,但现代 TLS(如 TLS 1.3)已大幅优化,支持 0-RTT 快速重连。


🌐 4. 对 SEO 和浏览器的影响

  • Google 等搜索引擎优先收录 HTTPS 网站(SEO 友好)。
  • 现代浏览器(Chrome/Firefox)会将 HTTP 网站标记为“不安全”,影响用户信任。
  • 某些新 Web API(如 Geolocation、Service Worker)仅在 HTTPS 下可用

🛡️ 5. 常见误区澄清

误区正确理解
“HTTPS 只是加密登录密码”❌ HTTPS 加密所有传输内容,包括 URL、Cookie、API 数据等
“用了 HTTPS 就绝对安全”❌ HTTPS 只保证传输安全,不能防止 XSS、CSRF、服务器被黑等
“HTTPS 会让网站变很慢”❌ 现代硬件和协议优化下,性能差距极小,且可通过 HTTP/2 进一步提升

✅ 总结:一句话记住区别

HTTP 是“明信片”,谁都能看;HTTPS 是“密封挂号信”,只有收件人能拆开,且能确认寄件人身份。

如今,所有网站都应使用 HTTPS,这已成为互联网基础设施的标准配置。Let’s Encrypt 等免费 CA 的出现也让部署 HTTPS 成本几乎为零。